#include <iostream>
#include <string>
/*代理模式：在原有功能的基础上，对原有功能的加强*/

class RentHuose{
public:
    virtual void rentHouse()=0; 
};

class Landlord:public RentHuose{
public:
    void rentHouse()
    {
        std::cout<<"房子租出去了！！\n";
    }
};

class Intermediary:public RentHuose{
public:
    void rentHouse()
    {
        std::cout<<"发布招租启事\n";
        std::cout<<"带人看房\n";
        _landlord.rentHouse();
        std::cout<<"负责租后维修\n";
    }
private:
    Landlord _landlord;
};

//这样租房就不需要直接与房东交互了，通过中介就可以进行租房这个操作了
int main()
{
    Intermediary intermediary;
    intermediary.rentHouse();
    return 0;
}